package com.tengju.bff.interfaces.covercharge.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tengju.user.domain.annotation.Sensitive;
import com.tengju.user.domain.shared.SensitiveFieldType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@ApiModel(value = "自认证申请提现记录查询结果")
public class AdminSelfCertificationQueryVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键",required=true)
    private Integer id;

    @ApiModelProperty(value = "代理id",required=true)
    private Integer idCode;

    @Sensitive(type = SensitiveFieldType.NAME)
    @ApiModelProperty(value = "代理姓名",required=true)
    private String name;

    @Sensitive(type = SensitiveFieldType.MOBILE)
    @ApiModelProperty(value = "手机号",required=true)
    private String mobile;

    @ApiModelProperty(value = "平台",required=true)
    private String platformCode;

    @ApiModelProperty(value = "企业/个体户名称",required=true)
    private String companyName;

    @Sensitive(type = SensitiveFieldType.DUTY_PARAGRAPH)
    @ApiModelProperty(value = "社会信用代码/税号",required=true)
    private String companyNo;

    @Sensitive(type = SensitiveFieldType.BANKCARD_NO)
    @ApiModelProperty(value = "银行卡号",required=true)
    private String bankNo;

    @ApiModelProperty(value = "开户行",required=true)
    private String bankName;

    @ApiModelProperty(value = "申请金额",required=true)
    private BigDecimal money;

    @ApiModelProperty(value = "申请理由",required=true)
    private Integer reason;

    @ApiModelProperty(value = "发票类型",required=true)
    private Integer invoice;

    @ApiModelProperty(value = "创建时间",required=true)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "修改时间",required=true)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "审批时间",required=true)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime checkAt;

    @ApiModelProperty(value = "审批人",required=true)
    private String approvers;

    @ApiModelProperty(value = "审批说明",required=true)
    private String remark;

    @ApiModelProperty(value = "审核状态",required=true)
    private Integer status;

    @Sensitive(type = SensitiveFieldType.NAME)
    @ApiModelProperty(value = "户名",required=true)
    private String idcardName;

    @ApiModelProperty(value = "发放备注")
    private String issuingNote;

    @ApiModelProperty(value = "渠道返回信息")
    private String queryRemark;

    @ApiModelProperty(value = "类型 1-企业 2-个体工商户")
    private Integer type;

    /**
     * 是否已打印
     */
    @ApiModelProperty(value = "是否已打印 0-未打印 1-已打印")
    private Integer isPrint;

    @ApiModelProperty(value = "请求号")
    private String reqSn;

    private String extra;

    @ApiModelProperty(value = "账户渠道")
    private String channel;
}
